package main

import "fmt"

// 常量
// const pi = 3.1415926

// 批量声明常量时，如果某一行声明后没有赋值，默认就和上一行一致
// const (
// 	s1 = 100
// 	s2
// 	s3
// )

// iota 在const 关键字出现时将被重置为0 const中每新增一行常量声明将使iota计数一次(iota可以理解为const语句块中的行索引)
// 使用iota能简化定义，在定义枚举时很有用。
// iota
// const (
// 	a1 = iota // 0
// 	a2 = iota // 1
// 	a3        // 2
// )

// const (
// 	b1 = iota
// 	b2
// 	_
// 	b3
// )
// 插队
// const (
// 	c1 = iota
// 	c2 = 100
// 	c3 = iota
// 	c4
// )

// const (
// 	d1, d2 = iota + 1, iota + 2 // d1: 1 d2:2  const 中iota每增加一行常量声明将使iota计数一次
// 	d3, d4 = iota + 1, iota + 2 // d3: 2 d4:3
// )

// 定义数量级
const (
	_  = iota
	KB = 1 << (10 * iota)	// 1
	MB = 1 << (10 * iota)	// 10 左移n位就是乘以2的n次方
	GB = 1 << (10 * iota)
	TB = 1 << (10 * iota)
	PB = 1 << (10 * iota)
)

func main() {
	// fmt.Println(pi)
	// fmt.Println(s1)
	// fmt.Println(s2)
	// fmt.Println(s3)
	// fmt.Println(a1)
	// fmt.Println(a2)
	// fmt.Println(a3)
	// fmt.Println(b1)
	// fmt.Println(b2)
	// fmt.Println(b3)
	// fmt.Println(c1)
	// fmt.Println(c2)
	// fmt.Println(c3)
	// fmt.Println(c4)
	// fmt.Println(d1)
	// fmt.Println(d2)
	// fmt.Println(d3)
	// fmt.Println(d4)
	fmt.Println(KB)
	fmt.Println(MB)
	fmt.Println(GB)
	fmt.Println(TB)
	fmt.Println(PB)
}
